package com.mcxx.modules.miniSalvation.fundpay.dao.read;

import com.mcxx.modules.miniSalvation.family.param.SalvationFamilyParam;
import com.mcxx.modules.miniSalvation.fundpay.dto.*;
import com.mcxx.modules.miniSalvation.fundpay.entity.FundPayEntity;
import com.mcxx.modules.miniSalvation.fundpay.entity.FundPayFamilyEntity;
import com.mcxx.modules.miniSalvation.fundpay.entity.FundPayMemberEntity;
import com.mcxx.modules.miniSalvation.fundpay.param.FundPayFamilyParam;
import com.mcxx.modules.miniSalvation.fundpay.param.FundPayMemberParam;
import com.mcxx.modules.miniSalvation.fundpay.param.FundPayParam;
import com.yinhai.ta404.module.mybatis.mapper.Ta404SupportMapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface FundPayMemberReadDao extends Ta404SupportMapper {


	List<FundPayMemberEntity> getByFundPayId(String fundPayId);




	List<FundPayMemberEntity> getMemberCapital(@Param("orderIdList") List<String> orderIdList, @Param("costType") String costType, @Param("payDate") Date payDate);






	List<FundPayMemberEntity> getMemberForStand(@Param("orderIdList") List<String> orderIdList
			, @Param("payDate") String payDate, @Param("costType") String costType,  @Param("salaryType") String salaryType);








	List<FundPayMemberEntity> getMemberByCreateAllowance(@Param("orderIdList") List<String> orderIdList);


	List<FundPayFamilyDTO> getNoSaveAllowanceMemberList(AllowanceFundPayDTO allowanceFundPayDTO);


	List<FundPayMemberEntity> getMemberByAllowanceAddMember(@Param("orderIdList") List<String> orderIdList, @Param("memberIdList") List<String> memberIdList);



	List<FundPayMemberListDTO> getAllowanceFundPayMember(FundPayMemberParam fundPayMemberParam);








	List<FundPayMemberDTO> getNoSaveCustomMemberList(CustomFundPayDTO customFundPayDTO);


	List<String> getIdByFundPayFamilyId(String fundPayFamilyId);


	List<FundPayMemberEntity> getMemberCustomForData(@Param("orderIdList") List<String> orderIdList);


	List<FundPayMemberDTO> getCustomMemberForPage(FundPayFamilyParam fundPayFamilyParam);







	int cntMemberByCreateFuneral(FuneralFundPayDTO funeralFundPayDTO);


	List<FundPayMemberEntity> getMemberByCreateFuneral(FuneralFundPayDTO funeralFundPayDTO);


	List<FundPayMemberDTO> getNoSaveFuneralMemberList(FuneralFundPayDTO funeralFundPayDTO);


	List<FundPayMemberDTO> getFuneralMemberForPage(FundPayMemberParam fundPayMemberParam);


	List<FuneralFundPayExcelDTO> exportFuneralMemberList(FundPayMemberParam fundPayMemberParam);



	List<FundPayMemberEntity> getMemberByFuneralAddMember(@Param("orderIdList") List<String> orderIdList, @Param("memberIdList") List<String> memberIdList);





	List<FundPayMemberListDTO> getSupportPayMember (FundPayParam param);


	List<FundPayMemberListDTO> getCarePayMember (FundPayParam param);


	List<FundPayMemberExcelDTO>  exportExcelFundPayMember(FundPayParam fundPayFamily);



	List<FundPayMemberListDTO>  getFundPayMember(FundPayParam fundPayFamily);

	FundPayMemberListDTO getFundPayMemberCount(FundPayParam fundPayFamily);

	Map getDeathCountSummary(FundPayMemberParam param);

	Map getrecevierCountSummary(FundPayMemberParam param);


	List<FundPayMemberDTO> getReceiveMemberForPage(FundPayMemberParam fundPayMemberParam);


	List<FundPayMemberListDTO> getAllowanceFundPayFamily(FundPayMemberParam fundPayMemberParam);


    int cntMemberByCreateFuneralOld(FuneralFundPayDTO funeralFundPayDTO);

	List<FundPayMemberEntity> getMemberByCreateFuneralOld(FuneralFundPayDTO funeralFundPayDTO);


	List<FundPayMemberDTO> getCarePersonList(FundPayMemberParam fundPayMemberParam);


	List<FundPayMemberEntity> getCarePersonInfo(@Param("idsList") List<String> idsList,@Param("careType") String careType, @Param("payDate") Date payDate);


	List<FundPayMemberDTO> getCareOrganizationList(FundPayMemberParam fundPayMemberParam);


	List<FundPayMemberDTO> getDisperseCapitalObjectList(FundPayMemberParam fundPayFamilyParam);


	List<FundPayMemberDTO> getDisperseCapitalObjectOrganizationList(FundPayMemberParam fundPayMemberParam);

	List<FundPayMemberEntity> getAddAllowanceMemberByOrderIdsAndFamilyIds(@Param("orderIdList") List<String> orderIdList, @Param("familyIds") List<String> familyIds);


    List<FuneralFundPayTakePersonExcelDTO> exportFuneralTakePersonList(FundPayMemberParam param);


	List<FundPayMemberDTO> getNoSaveCareMember(CustomFundPayDTO customFundPayDTO);

    List<FundPayMemberDTO> getAlreadySaveCareMember(FundPayFamilyParam fundPayFamilyParam);

    List<FundPayFamilyDTO> getNoSaveAllowanceFamilyList(AllowanceFundPayDTO allowanceFundPayDTO);

	List<FundPayFamilyDetailExcelDTO> exportExcelFundPayFamily(FundPayParam param);


    List<FundPayMemberEntity> getCareFeeSuspendPersonInfo(@Param("idsList") List<String> idsList);


    List<FundPayMemberEntity> getMemberFromFundPay(@Param("familyIds") List<String> familyIds,@Param("standFundPay") StandFundPayDTO standFundPay);
}
